package com.comeval.logica;

import com.comeval.modelo.Entrada;
import com.comeval.persistencia.IEntradaDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author DianaMarcela
 */
@Stateless
public class LogicaEntrada implements LogicaEntradaLocal {

    @EJB
    private IEntradaDAO entradaDAO;

    @Override
    public void registrarEntrada(Entrada entrada) throws Exception {

        if (entrada == null) {
            throw new Exception("La entrada no tiene informacion");
        }
        entradaDAO.registrarEntrada(entrada);
    }

    @Override
    public void modificarEntrada(Entrada entrada) throws Exception {
        if (entrada == null) {
            throw new Exception("La entrada no tiene informacion");
        }
        if (entrada.getCodigoentrada() == null) {
            throw new Exception("La entrada debe tener un codigo");
        }
        Entrada objEntrada = entradaDAO.consultarPorCodigo(entrada.getCodigoentrada());
        if (objEntrada == null) {
            throw new Exception("La entrada a modificar no existe");
        }
        entradaDAO.modificarEntrada(entrada);

    }

    @Override
    public void eliminarEntrada(Entrada entrada) throws Exception {
        Entrada objEntrada = entradaDAO.consultarPorCodigo(entrada.getCodigoentrada());
        if (objEntrada == null) {
            throw new Exception("La entrada a eliminar no existe");
        }
        entradaDAO.eliminarEntrada(objEntrada);
    }

    @Override
    public List<Entrada> consultarEntradas() throws Exception {
        return entradaDAO.consultarEntradas();
    }

    @Override
    public Entrada consultarPorCodigo(Long codigoEntrada) throws Exception {
        if (codigoEntrada == null) {
            throw new Exception("Por favor ingrese un dato valido");
        }
        return entradaDAO.consultarPorCodigo(codigoEntrada);
    }

}
